﻿using System;
using System.Collections.Generic;
using System.Text;
using WPFCABShell.$safeprojectname$.Services.Module;

namespace WPFCABShell.$safeprojectname$.Services.Options
{
	/// <summary>
	/// Describes information about a plugin.
	/// </summary>
	public interface IPluginInfo
	{
		/// <summary>
		/// Gets the name of the plugin.
		/// </summary>
		string Name
		{
			get;
		}

		/// <summary>
		/// Gets the description of the plugin.
		/// </summary>
		string Description
		{
			get;
		}

		/// <summary>
		/// Gets the full path to the assembly containing the plugin.
		/// </summary>
		string Path
		{
			get;
		}

		/// <summary>
		/// Gets the version of the plugin.
		/// </summary>
		Version Version
		{
			get;
		}

		/// <summary>
		/// Gets a value indicating whether the plugin is implicitly trusted.
		/// </summary>
		bool IsImplicitlyTrusted
		{
			get;
		}

		/// <summary>
		/// Gets or sets a value indicating whether the plugin is whitelisted.
		/// </summary>
		bool IsWhitelisted
		{
			get;
			set;
		}

		/// <summary>
		/// Gets the status of the module containing the plugin.
		/// </summary>
		ModuleStatus ModuleStatus
		{
			get;
		}
	}
}
